package com.wall.haven.enums;

import com.baomidou.mybatisplus.extension.api.IErrorCode;

/**
 * @author ChenWangKun
 * @date 2023-05-08
 **/

public enum ResultCode implements IErrorCode {
    /**
     * 成功
     */
    SUCCESS(200, "操作成功！"),

    /**
     * 系统错误
     */
    ERROR(500, "系统错误！"),

    /**
     * 操作失败
     */
    FAILED(101, "请求失败！"),

    /**
     * 参数错误
     */
    PARAM_ERROR(103, "参数错误"),

    /**
     * 参数错误-已存在
     */
    INVALID_PARAM_EXIST(104, "请求参数已存在"),

    /**
     * 参数错误
     */
    INVALID_PARAM_EMPTY(105, "请求参数为空"),

    /**
     * 参数错误
     */
    PARAM_TYPE_MISMATCH(106, "参数类型不匹配"),

    /**
     * 参数错误
     */
    PARAM_VALID_ERROR(107, "参数校验失败"),

    /**
     * 验证码错误
     */
    INVALID_VCODE(204, "验证码错误"),

    /**
     * 密码错误
     */
    INVALID_PASSWORD(205, "密码错误"),

    /**
     * 用户名重复
     */
    USERNAME_ALREADY_IN(208, "用户名已存在"),

    /**
     * 用户不存在
     */
    INVALID_USERNAME(209, "用户名不存在"),

    /**
     * 角色不存在
     */
    INVALID_ROLE(210, "角色不存在"),

    /**
     * 角色不存在
     */
    ROLE_USED(211, "角色使用中，不可删除"),

    /**
     * 鉴权失败
     */
    UNAUTHORIZED(403, "权限不足"),

    /**
     * 认证失败
     */
    UNAUTHENTICATED(411, "用户未登录"),
    INVALID_TOKEN(412, "非法访问"),
    EXPIRED_TOKEN(413, "Token已过期，请刷新页面重试"),
    EXPIRED_SECRET(414, "授权码不正确"),
    AUTHENTICATION_FAILED(415, "校验失败"),
    ;


    public final long code;

    public final String msg;

    ResultCode(long code, String msg) {
        this.code = code;
        this.msg = msg;
    }

    @Override
    public long getCode() {
        return code;
    }

    @Override
    public String getMsg() {
        return msg;
    }
}